// ------------------------------------------------------------------------------
// 此代码版权（除特别声明或在XREF结尾的命名空间的代码）归作者本人若汝棋茗所有
// 源代码使用协议遵循本仓库的开源协议及附加协议，若本仓库没有设置，则按MIT开源协议授权
// CSDN博客：https://blog.csdn.net/qq_40374647
// 哔哩哔哩视频：https://space.bilibili.com/94253567
// Gitee源代码仓库：https://gitee.com/RRQM_Home
// Github源代码仓库：https://github.com/RRQM
// API首页：https://touchsocket.net/
// 交流QQ群：234762506
// 感谢您的下载和使用
// ------------------------------------------------------------------------------

using Baboon.Core;
using Baboon.Desktop;
using BaboonDemo.Core;

namespace Baboon.DemoWinform;

internal static class Program
{
    /// <summary>
    ///  The main entry point for the application.
    /// </summary>
    [STAThread]
    private static void Main()
    {
        var myApp = new MyApp();
        myApp.Run();
    }

    private class MyApp : BaboonWinformApplication
    {
        protected override Form CreateMainForm(IFormManager formManager)
        {
            return formManager.GetForm<Form1>();
        }

        //protected override Form CreateMainForm()
        //{
        //    return this.ServiceProvider.GetRequiredService<Form1>();
        //}

        protected override Task InitializeAsync(AppModuleInitEventArgs e)
        {
            //添加服务
            //e.Services.AddSingleton<>();
            return Task.CompletedTask;
        }

        protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
        {
            moduleCatalog.Add<BaboonCoreModule>();
            base.ConfigureModuleCatalog(moduleCatalog);
        }

        protected override Task StartupAsync(AppModuleStartupEventArgs e)
        {
            return Task.CompletedTask;
        }
    }
}